package com.heroCW.bodhiAttic.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.heroCW.bodhiAttic.dto.DishDto;
import com.heroCW.bodhiAttic.entity.Dish;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface DishService extends IService<Dish> {

    // 新增菜品，同时插入菜品对应的口味数据
    Boolean saveWithFlavor(DishDto dishDto);

    // 根据id查询菜品信息和对应的口味信息
    DishDto getByIdWithFlavor(Long id);

    // 修改菜品，同时修改菜品对应的口味数据
    Boolean updateWithFlavor(DishDto dishDto);

    // （批量）移除菜品及其对应的口味数据
    Boolean removeDishWithFlavor(@Param("ids") List<Long> ids);

    // （批量）修改菜品状态
    Boolean updateStatus(Integer status, @Param("ids") List<Long> ids);

    // 对菜品信息进行分页查询（用于后台管理端）
    IPage<DishDto> getPage(int page, int pageSize, String name);

    // 对菜品信息进行列表查询（用于移动端）
    List<DishDto> getList(Dish dish);

    // 复用代码
    List<DishDto> copyToDishDto(List<Dish> list);
}
